<?
namespace Admin\Event
{
    class UpdateUser extends \Api\AjaxEvent\Listener
    {
        /**
         * Update user account         
         */
         public function __event__UpdateUser()
         {
            $result = array('status'=>false,                
                'message'=>'');

            if(array_key_exists('log',$this->m_param) &&
                array_key_exists('rep',$this->m_param) &&
                 array_key_exists('new',$this->m_param) &&
                 array_key_exists('old',$this->m_param))
             {
                $user = new \Api\Model\Login($this->m_config);
                $status = array(true,true);
                if($user->GetUsername() != $this->m_param['log'])
                {                    
                   if($user->ChangeUsername($this->m_param['log'], $user->GetUserId()))
                   {
                        $status[0] = true;
                        \Api\Session::set('Username',$this->m_param['log']);	
                        $result['message'] .= '<li>Poprawnie zmieniono nazwę użytkownika';
                   }else
                   {
                        $status[0] = false;
                        $result['message'] .= '<li>Podana nazwa użytkownika jest zajęta';
                   }
                }
                
                if(strlen($this->m_param['old']) > 0 || strlen($this->m_param['rep']) > 0
                    || strlen($this->m_param['new']) > 0)
                {
                    $status[1] = false;
                    if(strlen($this->m_param['old']) == 0)
                    {
                        $result['message'].='<li>Pole starego hasła nie zostało wypełnione!';
                    }                    
                    else if(strcmp($this->m_param['rep'],$this->m_param['new'])!=0)
                    {                        
                        $result['message'].='<li>Podane nowe hasła są różne!';
                    }          
                    else if(strlen($this->m_param['rep'])==0){
                        $result['message'].='<li>Nie podano nowego hasła.';
                    }    
                    else if($user->ChangePass($this->m_param['new'], $this->m_param['old'], $user->GetUserId()))
                    {
                        $status[1]= true;
                        $result['message'].='<li>Nastąpiła poprawna zmiana hasła.';
                    }else
                    {
                        $result['message'].='<li>Podane stare hasło jest nieprawidłowe.';
                    }
                }                
                if($status[0]==true && $status[1]==true && $result['message']!='')
                {
                    
                    $result['status']=true;
                    $result['message'].='<li>Zachwilę nastąpi odświeżenie podstrony';
                }elseif($result['message']=='')
                {
                    $result['status']=false;
                    $result['message']='Nie można zaktualizować ustawień uzytkownika bez uprzedniego wprowadzenia danych do formularza.';
                }
                
             }else
             {
                $result['message']='Wystąpił błąd. Proszę chwilę poczekać i spróbować ponownie';
             }
             
             return json_encode($result);
         }
    }
}
?>